# -*- coding: utf-8 -*-
# @Time    : 2024/7/1 14:09
# @Author  : yujiahao
# @File    : 06_numpy_curd.py
# @description:NumPy数组元素增删改查


"""
NumPy 数组元素的增删改查操作方法：

1. resize
   - 函数名称：np.resize(a, new_shape)
   - 描述说明：返回指定形状的新数组。如果新形状大于原数组，则重复原数组元素以填充新数组。

2. append
   - 函数名称：np.append(arr, values, axis=None)
   - 描述说明：将元素值添加到数组的末尾。如果指定了轴，则沿该轴添加元素。

3. insert
   - 函数名称：np.insert(arr, obj, values, axis=None)
   - 描述说明：沿规定的轴将元素值插入到指定的元素前。如果未指定轴，则将数组展平。

4. delete
   - 函数名称：np.delete(arr, obj, axis=None)
   - 描述说明：删除某个轴上的子数组，并返回删除后的新数组。如果未指定轴，则将数组展平。

5. argwhere
   - 函数名称：np.argwhere(a)
   - 描述说明：返回数组内符合条件的元素的索引值。通常与条件一起使用，如 a > 0。

6. unique
   - 函数名称：np.unique(ar, return_index=False, return_inverse=False, return_counts=False, axis=None)
   - 描述说明：用于删除数组中重复的元素，并按元素值由小到大返回一个新数组。可以选择返回索引、逆索引和元素计数。

示例代码：
"""
import numpy as np

# 示例数组
arr = np.array([1, 2, 2, 3, 4, 4, 5])

# 1. resize
resized_arr = np.resize(arr, (3, 3))
print("调整大小后的数组:\n", resized_arr)

# 2. append
appended_arr = np.append(arr, [6, 7])
print("追加元素后的数组:", appended_arr)

# 3. insert
inserted_arr = np.insert(arr, 2, [9, 10])
print("插入元素后的数组:", inserted_arr)

# 4. delete
deleted_arr = np.delete(arr, [1, 3])
print("删除元素后的数组:", deleted_arr)

# 5. argwhere
condition = arr > 2
indices = np.argwhere(condition)
print("大于 2 的元素索引:", indices)

# 6. unique
unique_arr = np.unique(arr)
print("去重后的数组:", unique_arr)
